1 research outputs found

    Um middleware para computação paralela em clusters de multicores

    Get PDF
    Dissertação para obtenção do Grau de Mestre em Engenharia InformáticaA boa relação custo/performance dos aglomerados (clusters) de processadores multicore popularizou este tipo de plataforma no âmbito da High Performance Computing (HPC)- Computação de Alta Performance. No entanto, a programação de clusters é complexa, requerendo a consciência da sua arquitetura, o que prejudica o desenvolvimento, portabilidade e manutenção das aplicações. No caso particular dos clusters de multi-cores, esta complexidade aumenta quando os nós que compõem o cluster não são uniformes, quer no número de cores, quer na hierarquia de memórias cache. Este tipo de arquitetura já foi apelidada de Non-Uniform Cluster Computing (NUCC) [CGS+05], pois conjuga os conceitos de clustering e acesso não uniforme à memória. Neste contexto, é essencial o desenvolvimento de ferramentas que proporcionem níveis de abstração mais elevados, escondendo os detalhes subjacentes à arquitetura e às tecnologias necessárias à comunicação, escalonamento de tarefas, consistência de memória,entre outros. O trabalho desenvolvido pretende contribuir para o avanço do estado da arte nessa área. Propõe-se um middleware para programação paralela especialmente vocacionado para clusters de multi-cores, cujo desenho é inspirado no de Sistemas de Operação, no sentido de que, além de definir uma interface para as aplicações, define outra para o desenvolvimento de novos módulos (drivers) que permitem a especialização das suas funcionalidades para uma dada arquitetura alvo. O trabalho partiu de uma base já existente para memória partilhada, tendo sido estendido para arquiteturas de memória distribuída. Para tal, foram especializadas as camadas de interface, de suporte base e drivers para suportar estas arquiteturas, nomeadamente clusters de multi-cores
    corecore